/* lexical errors */

TooManyErr   		"too many errors"
TooManyLevel   		"too many nested levels"
TooManyInclude   	"too many nested lexical processing levels"
IlleagalChar   		"illeagal character"
CommentErr   		"comment error, non-close"
CharErr   		"illeagal character in char constant"
CharNoClose	   	"quoation mark expected for a char"
NumErr	   		"syntax error in the number constant %s" 
HexNumErr1	   	"hexical number requires hexical digits"
NumBaseErr	   	"the floating number %f with non-decimal base"
NumFloatErr	   	"syntax error in the floating number %f"
NumTooBig	   	"the integral number %n is too big"
StringErr	   	"error in string"
EscHexErr	   	"hexical escape requires hexical digits"
EscOct	   		"require octal escape digit" 
EscErr	   		"wrong escape character"
IllStrChar	   	"illegal character in string"
StrTooLong	   	"too long string"
StrNonClose	   	"quoation mark expected for a string"
EmptyListExpected	"must be an empty tuple"
UseAbsClassPara		"use unbound class parameter of an abstract class parameter"
ClassScope		"Scope selector requires a class name"

UnexpectedSymbol    "unexpected token"
UnexpectedFileEnd	"unexpected end of file"


ObjWrongFile		"the file may not be a ScriptV file"
ObjSyntax			"syntax error"
NameExpected		"a name is expected"
ColonExpected		"character \":\" is expected"
FuncNameExpected	"function name is expected"
ClassNotFound		"class undefined"
NotAClassName		"not a class name"
NotInstantiableClass"the class is not instantiable"
ObjectGreateFail	"object creation fails"
SColonExpected		"character \";\" is expected"

RBracketMissing		"character \"]\" is expected"
ClassResName		"not a composite object"
UnknownType			"type is unknown"

IntegerWanted		"integer is expected"
CharWanted			"character is expected"
StringWanted		"string is expected"
EnumNameWanted		"enumeration name is expected"
SetValueWanted		"set value is expected"
SetNameWanted		"set name is expected"
StreamWanted		"stream is expected"
ListValueWanted		"list value is expected"
ArrayValueWanted	"array value is expected"

NotAInstClass		"the class is not instantiable"
NotAFreeClass		"the class must be a free (global) class"
NotANameExpr		"a name expression is expected"

NotLinkableObject	"the object is not connectable"
ObjectExpected		"an object is expected"

ClassExpected		"a class is expected"
WrongClass			"inpropriate class"
WrongSuperClass		"wrong super class"

MethodNameExpected	"a member function name is expected"
ParameterWanted		"an actual parameter is expected"
ParaNameExpected	"parameter's name is expected"

FloatExpected		"a floating-point number is expected"

BlockExpected		"a block is expected"

EqualSignExpected	"character \"=\" is expected"

TypeMismatch		"type mismatch"

NotAScript			"this is not script"

CondExprMissing		"condition express is expected"
WithExprMissing		"with express is expected"
BreakNotInLoop		"the break statement is not expected"
ContinueNotInLoop	"the continue statement is not expected"
ReturnNotInBlock	"the return statement is not in the block"
ReturnTypeWrong		"returned type is wrong"
ConstrcutorBodyExpected	"constructor's body is expected"

TypeNameExpected	"a type's name is expected"

FuncIOAlreadyImp	"this function has already implemented"

InheritanceLoop		"the inheritance forms a loop"

ArrayIndex			"cannot evaluate the array index"

 
LConBrExpected		"character \"{\" is expected"
RConBrExpected		"character \"}\" is expected"
LParentExpected		"character \"(\" is expected"
RParentExpected		"character \")\" is expected"
LBracketCHMissing	"character \"[\" is expected"
RBracketCHMissing	"character \"]\" is expected"
ColonMissing		"character \":\" is expected"
SemicolonCHMissing	"character \";\" is expected"
RTParaCHMissing		"character \">\" is expected"

Syntax				"syntax error"

MemberNameExpected	"a member name is expected"
			
ConflictFixSpec		"conflict fixed integer for the class"
EnterExpected		"enter is expected"
AutoEnterHasParas	"auto enter should not have any parameter"

SetTypeEmpty		"set type should not be empty"

SelfUnresloved		"cannot determine which class the self is represented"

ConstExprExpected	"a constant expression is expected"

PrefixUnexpected	"prefix operator should be used here"
ExpressionExpected	"an expression is expected"

WhileMissing		"the keyword \"while\" is expected"   
InMissing		"the keyword \"in\" is expected"   
IsMissing		"the keyword \"is\" is expected"   

WrongScopeSelector	"scope selector is not expected here"

EqualOperatorExpected	"the operator \"=\" is expected"
IdentfierExpected	"identifier is expected"

/* errors in name declaration */
DeclNameExpected	"name declaration is expected"	
DeclSpecifier1		"declaration specifier is duplicated"
DeclSpecifier2		"abstract and exact specifiers conflict"
InitialExprExpected	"initial expression is expected after \"=\""

/* errors in class declaration */
ClassParaDecl1		"bound expression should not be given to a newly declared class parameter"
ClassNameExpected	"class name is expected"
NameOperatorExpected	"operator name is expected"
ObjectNameExpected	"object name is expected"
OperatorNameNotAccepted	"operator name should appear after the keyword \"operator\""
NameAlreadyDefined	"name %s is already fully declared or imported in this scope"
NameDefinedAsFormalParameter "the name has already been declared as a formal parameter"           
ClassAlreadyDeclared	"the class %s is declared twice in the same scope"
ClassNotFullyDefined	"the class %s is used while it is not fully defined"
ClassSpecifier1		"the specifier \"def\" cannot be with \"imp\""	
ClassSpecifier2		"the specifier \"def\", \"extern\", and \"imp\" cannot be used for member classes"
ClassSpecifier3		"the same class specifier is used twice"	
ClassSpecifier4		"the specifier \"fixed\" cannot be with \"sealed\""	
ClassSpecifier5		"the specifier \"abstract\" cannot be with \"interface\""	
ClassSpecifier6		"specifers \"interface\" cannot be with \"sealed\""
ClassSpecifier7		"specifers \"abstract\", \"interface\" or \"fixed\" cannot be used with singleton"
ClassSpecifier8		"specifers \"imp\" or \"def\" cannot be used for singleton only"
ClassSpecifier9		"specifers \"imp\" and \"extern\" cannot be used together"
ClassSpecifier10		"specifers \"abstract\", \"interface\" cannot be used with \"concrete\""
NoDeferredForGlobal	"member class attribute \"deferred\" cannot be used for a free class"
NoFinalForGlobal	"member class attribute \"final\" cannot be used for a free class"
ClassKeywordExpected	"the keyword \"class\" or \"object\" is expected"
ClassSpecifierConflict	"class specifiers do not conform to the pre-defined one"
ClassInterfaceExpected	"declaring the class %s requires an object instantiation interface" 
FreeClassNotFinished	"a free class declaration must contain a class body" 
ClassAlreadyDefined		"Class has already been fully declared or imported"
MemberSpecifier			"Specifier final and deferred conflicts"
DeferredImp				"Interface class or deferred class or deferred class interface cannot have constructor body"
DeferredExit			"Interface class or deferred class cannot have destructor"
AlreadyHaveExit			"Destructor is already defined in this class"
NotAllInfImp			"Not all interface are implemented"
NotAllMemberImp			"Not all member class' interfaces are implemented"
InfMemberFinal			"Member of interface class cannot be final"
AbsTypeInst				"Abstract class cannot be used for object instantionation" 
BaseClassExpected		"Base class expected"
AuxSuperDiff			"The subsequent declaration of an auxiliary base class must be a subtype" 
AuxSuperAlready			"The auxiliary base is already be associated with a delegation and cannot be redeclared"

SealedClassInherited    "sealed classes cannot be inherited"  
InterfaceClassExpected  "non-primary superclass should be an interface class"
WrongBaseClass		"base class must be a simple class, enum, set, tuple, array, or clutser type"  
WrongMIBaseClass	"Multiplr interface inhritance cannot be used for this class"  

StaticNameMisuse	"static name speficier can only be used with value class"  
ValueClassMisuse	"value class can not be used with smart name"  

NameNotFound		"the name is not defined"

DeclOfTypeExpr1		"the type followed by the keyword \"of\" must be a class name"
DeclOfTypeExpr2		"the class has no unbound type parameter, \"of\" expression should not be used"
DeclOfTypeExpr3		"the type presented after \"of\" is not a subtype of the parameter's constraining class"
DeclOfTypeExpr4		"there are more than one unbound type parameters, don't know which one should be used"
DeclOfTypeExpr5		"A referentail class cannot be used after \"of\""
DeclOfTypeExpr6		"when \"s\" is a referential class in \"s of T\", \"s\" must be a sealed value class"
DeclOfTypeExpr7		"value class cannot be used to bind a non-value type class parameter"
DeclOfTypeExpr8		"non value class cannot be used to bind a value type class parameter"
EnumTypeEmpty		"empty enumeration type is not allowed"
EnumNameExpected	"an enumeration name is expected"
SetTypeEmpty		"empty set type is not allowed"
SetNameExpected		"a set name is expected"
SetNameWrongType	"set names of different set types in the same list"

PrimarySuperDiff	"Redefinition uses a superclass that is not a subtype of the predeclared one"
MemberInherit		"Superclass is a member class that is not accessible in the object scope"
SuperNotFunc		"Predefined superclass is not a functional class"
 
NameTypeExpected	"name of a class or a type parameter is expected"
NameClassTypeParaExpected "name of a type parameter is expected"
NameNotDefined		"the name %s is not defined"
NameAmbiguous		"the name %s is ambiguously found in %s and %s"

InterfaceDiffOutput "Interfaces have the same input signature but different output type"
InterfaceDuplicate	"More than one interfaces with the same input signature declared in the same interface list"
OPFormatConflict 	"the operator has two conflict formats"
InfAlreadyImplementated	"the interface has already been implemented, or it is implemented externally"

/* Expression error */	
SelfNotInClass 		"the keyword \"self\" should be used with an class"
SelfclassNotInClass  	"the keyword \"selfclass\" should be used with an class"
DeclaredNameExpected 	"a name is expecyed"
InstantiationNeedsType 	"instantiating object needs a type"
SubscribeUnexpected 	"the operator \"[]\" is not defined by the type of the object"
ExprAtferPrefixMissing 	"there is no expression following an prefix operator"
PrefixOperatorNotDefined "prefix operator is not defined by the type of the followed expression"
NotAPrefixOperator	"the operator used before the expression is not a prefix operator"
PrefixOperatorAsSuffix 	"the prefix operator used as a suffix operator"
OperandMissing 		"the number of operands is less than expected"
OperatorMissing		"the operator %s is missing"
OpStringMissing		"the operator surfix string is missing"
NameClassExpected	"class name expected after scope resolutor \"::\"" 
EmptyInputExpected 	"the type used has not an object instantitation interface"
NoMatchableInterface	"the type has no matched object instantitation interface"

ArraySizeNegtive	"array size is negtive"
ArraySizeTypeWrong	"the type of array size is wrong"

OperatorNameUnexpected	"operator name is unexpected"
NOperatorNotAllowed	"name operator is not allowed for free class"
WrongPriorityForPrefix	"the priority for a prefix operator should be 2"
WrongPriority		"the operator priority is wrong"
ConflictOperatorFormat	"the operator format used for the same operator has conflict"
PrefixUnexpected	"prefix operator is not allowed here"
PriorityUnexpected	"the operator prioroty is not allowed here"
NameExpressionExpected	"a name expression is expected"
SuperClassConflict	"superclass declaration has conflict with the predefined"
AnonymousNameNotAllowed	"anonymous name is not allowed"
NameOperatorOnConst	"name operator should not be used for a constant name"
NameInitExprTypeWrong   "the type if initilizing expression is wrong"
InstantiationWithTypeName   "using object instantiation for an expression that expects a type"


SouceFileNotFound	"the source file is not found"
SouceStringInvalid	"the string provided for compilattion is illeagal"

ModulePathExpected 	"The path to locate the module file is missing"
ModuleNameExpected 	"module names are expected"
DefModuleNotFound 	"the definition module is not found"
ModuleNotFound 		"the module is not found"
INForDEFModuleExpected	"the module imported must be an interface class or a definition singleton"
UseExpected		"use clause is expected"
ModuleNameInconsistency	"the module name is not consistent with the file name"
OpNameNoRename		"operator name cannot be renamed"
ImportMemberFromClass	"Members cannot be imported from a class"
ImportNameNotDefined	"the import name is not defined in the module"
ImportNameAmbiguous	"there are more than one names in the module, don't know which"
ImportNamePrivate	"private name cannot be imported"
CircularImporting	"circular importing is not allowed"

ModuleAlreadExist	"the module %s already exisit"
ModuleUnknown		"keyword \"class\" or \"object\" is not correctly specified"
DefNotFound		"the definition module is ot found"

CannotDecideBaseType	"the base type cannot be determined"
MoreActualParaExpected	"actual parameters are less than expected"
TooManyActualPara	"actual parameters are more than expected"
TypeExprExpected	"type expression is expected"
UnresovledTupleTypePara	 "Tuple type parameter has no base type element"
UnresolvedType		"cannot resolve the type for %s by the based type"

CondExprExpected 		"An expression returns boolean is expected"
LableDeclConflict		"Statement label uses the idetifier already used in the same scope"
WrongBreakTarget		"Don't know where to break to"
WrongContinueTarget		"Don't know where to continue from"
WrongSwitchExpr			"Switch expression must returns an integral, binary or enumerative value"

ExceptionExtra			"More exceptions is not allowed in a overriding interface"
ExceptionExtra1			"Exception list conflict in multiple inheritance"
ExceptionType			"Exception type in overriding class must use subtype"
ExceptionWithPara		"Exception type cannot have type parameter"
OverridingOutput		"The instantiation interface in overriding class has a different output type"
InputExpected			"Input expression is expected"
InputUnexpected			"Input expression is not expected"
ExceptionInputType		"Exception input does not match the type of the exception"

CaseExprExpect			"An expression after case is expected"
CaseExprValue			"Cannot evaluate the value of the expression after case"
CaseValueOverlap		"Case clauses have overlapped value"
CaseDefaultOverlap		"Default case is duplicated"
CaseExprType			"The type of the expression after case is not correct"
AssumeExprNotConst		"The expression after assume is not constant"
InspectExprNotConst		"The expression after inspect is not constant"
WithExprNotName			"The expression after with is not a name expression"
WithExprNotConst		"The expression after with is not constant"
ExceptNameExpected		"Exception name is expected"
TryExprError			"Expression after try must be an object instantiation expression"
TryExprError1			"Object instantiation expression must use interfaces with exceptions"
ExceptionCaseExpected	"Exception expression is expected"
RetryNotInTry			"Retry statement is not within a try statement"
ReturnExprUnexpected	"An return expression is expected"
ReturnUnexpected		"Return statement is not expected"
ReturnExprExpected		"Return expression is not expected"
ReturnTypeError			"The type of return expression is not correct"
StatementLabel			"This statement cannot have a lable"

OverridingSuper			"Overriding class has a different superclass than the one of the overriden"
NonFuncOutput			"Only functional classes can have explicitly declread type"

ConcreteUnbound			"Concrete or singleton class has unbound class parameters"
ConcreteDefer			"Concrete, singleton, or sealed class has deferred member class interface"

DelegateAtInterface		"An interface class cannot have any delegation"
DelegateSubtype			"The delegate class %s is not a subtype of the interface"
DelegateAbstract		"The delegate class %s must be a concrete class"
